package com.example.chapter4;

import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class MetaDataActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_meta_data);
        TextView tv_meta = findViewById(R.id.tv_meta);

        // 获取应用包管理器 ， getPackageManager()方法是Context类中的方法
        PackageManager pm = getPackageManager();
        try {
            // getActivityInfo: 从应用包管理器中获取当前的活动信息
            // getComponentName():指定你要查询哪一个 Activity
            // PackageManager.GET_META_DATA : 控制查询的详细程度   (默认情况下 PackageManager 在执行查询时会忽略 <meta-data> 标签)
            ActivityInfo info = pm.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
            // Stream API写法：ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
            // 获取活动附加的元数据信息
            Bundle bundle = info.metaData;
            String weather = bundle.getString("weather");
            Log.d("MetaDataActivity", "今天的天气是: " + weather);
            tv_meta.setText(weather);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
    }
}